import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import qs from 'qs';
// 导入reset css
import './assets/css/reset.css'

Vue.config.productionTip = false
// 导入axios
import axios from 'axios';
axios.defaults.baseURL="/",//默认请求的域名
// 配置post的默认请求头
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
axios.defaults.timeout = 5000;//默认请求超时5000毫秒
// 在vue的原型上面添加一个$http的方法
// vue的所有实例（包含各组件各页面）都将会拥有一个this.$http方法

// axios的拦截器的作业(请求拦截)
axios.interceptors.request.use(function(config){
	// console.log("网络请求中...",config)
	// 如果是post请求，那么我们可以把data序列化,并且传入的数据类型为对象
	if(config.method=="post"&&typeof config.data=="object" ){
		config.data = qs.stringify(config.data)
	}
	// 请求拦截，最终要把配置内容返回
	return config;
})

// axios的响应拦截
axios.interceptors.response.use(function(req){
	// console.log("加载完毕")
	// 响应拦截最终要不啊响应的结果返回
	return req;
},function(err){
	// 响应失败，把失败的结果返回
	return Promise.reject(err);
})


Vue.prototype.$http = axios;

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')
